# 作者：一只牛吗
# 2025 年01月 26日 01时 39分 38秒
# 1278599690@qq.com
# 任何递归都可以用循环来实现，递归实现难度更低，效率也更低
import sys
count = 0
sys.setrecursionlimit(1000000)  # 设置递归深度

def factorial(n):
    '''
    递归的出口很重要，否则会陷入无限递归
    :param n: 阶乘的数
    :return: result: n!
    '''
    result = 1
    if n == 0:
        return result
    else:
        return n * factorial(n - 1)


def step_statistic(n):
    global count
    if n > 0:
        step_statistic(n - 1)
        step_statistic(n - 2)
    elif n == 0:
        count += 1
    else:
        pass


def step(n):
    if n == 1 or n == 2:
        return n
    else:
        return step(n - 1) + step(n - 2)


if __name__ == '__main__':
    # 递归不适合调试
    # print(factorial(5))
    step_statistic(40)
    print(count)
    print(step(4))
